#ifndef MOVEMENTDATA_H
#define MOVEMENTDATA_H

#include <vector>
#include "Data.h"
#include "../utilities/Vector3.h"
#include "../core/Timer.h"

namespace binge
{

class MovementData : public Data
{
public:
    MovementData(void);
    ~MovementData(void);

    virtual void AddObject(int id);
    virtual void RemoveObject(int id);

    //movement velocity
    Vector3 GetVelocity(int id);
    void SetVelocity(int id, Vector3 pos);
    void SetVelocity(int id, float x, float y);

    float GetXVelocity(int id);
    float GetYVelocity(int id);
    void SetXVelocity(int id, float x);
    void SetYVelocity(int id, float y);

    void SetMoveTimer(int id, unsigned int ms);
    unsigned int GetMoveTimer(int id);

    void SetMoveStart(int id, unsigned int ms);
    unsigned int GetMoveStart(int id);

    Timer timer;

private:
    std::vector<Vector3> objectsVelocity;

    std::vector<unsigned int> objectsMoveTimer;
    std::vector<unsigned int> objectsMoveStart;
};

} // namespace

#endif // MOVEMENTDATA_H
